/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.netbeans.modules.languages.pl_sql.editor;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.Serializable;
import java.util.logging.Logger;
import javax.swing.Action;
import javax.swing.ButtonGroup;
import org.netbeans.modules.languages.pl_sql.editor.explorer.nodes.OConnectionRootNode;
import org.netbeans.modules.languages.pl_sql.editor.explorer.nodes.actions.AddAction;
import org.netbeans.modules.languages.pl_sql.editor.explorer.nodes.actions.AllOAccessAction;
import org.netbeans.modules.languages.pl_sql.editor.explorer.nodes.actions.ChangeOAccessCookieInterface;
import org.netbeans.modules.languages.pl_sql.editor.explorer.nodes.actions.DBAOAccessAction;
import org.netbeans.modules.languages.pl_sql.editor.explorer.nodes.actions.DeleteAction;
import org.netbeans.modules.languages.pl_sql.editor.explorer.nodes.actions.RefreshAction;
import org.netbeans.modules.languages.pl_sql.editor.explorer.nodes.actions.UserOAccessAction;
import org.openide.explorer.ExplorerManager;
import org.openide.explorer.ExplorerUtils;
import org.openide.explorer.view.BeanTreeView;
import org.openide.util.HelpCtx;
import org.openide.util.NbBundle;
import org.openide.windows.TopComponent;
import org.openide.windows.WindowManager;
//import org.openide.util.Utilities;
/**
* Top component which displays something.
*/
final class OracleTopComponent extends TopComponent implements ExplorerManager.Provider {
private static OracleTopComponent instance;
/** path to the icon used by the component and its open action */
static final String ICON_PATH = "org/netbeans/modules/languages/pl_sql/editor/resources/Root.png";
private static final String PREFERRED_ID = "OracleTopComponent";
private final ExplorerManager mgr = new ExplorerManager();
private final static String helpCtx = "org.netbeans.modules.languages.pl_sql.editor.mainwindow";
public ExplorerManager getExplorerManager() {
return mgr;
}
private OracleTopComponent() {
initComponents();
org.openide.awt.Actions.connect(AddjButton, (Action) new AddAction());
org.openide.awt.Actions.connect(DeletejButton, (Action) new DeleteAction());
org.openide.awt.Actions.connect(RefreshjButton, (Action) new RefreshAction());
org.openide.awt.Actions.connect(UserjToggleButton, (Action) new UserOAccessAction());
org.openide.awt.Actions.connect(AlljToggleButton, (Action) new AllOAccessAction());
org.openide.awt.Actions.connect(DBAjToggleButton, (Action) new DBAOAccessAction());
// following line tells the top component which lookup should be associated with it
associateLookup(ExplorerUtils.createLookup(mgr, getActionMap()));
//((BeanTreeView) DBView).setRootVisible(false);
mgr.setRootContext(OConnectionRootNode.GetRootNode());
mgr.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
ChangeOAccessCookieInterface cng = getLookup().lookup(ChangeOAccessCookieInterface.class);
if (cng != null) {
switch (cng.getObjectAccessed()) {
case User:
UserjToggleButton.setSelected(true);
break;
case All:
AlljToggleButton.setSelected(true);
break;
case DBA:
DBAjToggleButton.setSelected(true);
break;
}
}
}
});
setName(NbBundle.getMessage(OracleTopComponent.class, "CTL_OracleTopComponent"));
setToolTipText(NbBundle.getMessage(OracleTopComponent.class, "HINT_OracleTopComponent"));
// setIcon(Utilities.loadImage(ICON_PATH, true));
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
DBjToolBar = new javax.swing.JToolBar();
AddjButton = new javax.swing.JButton();
DeletejButton = new javax.swing.JButton();
RefreshjButton = new javax.swing.JButton();
DBAjToggleButton = new javax.swing.JToggleButton();
AlljToggleButton = new javax.swing.JToggleButton();
UserjToggleButton = new javax.swing.JToggleButton();
DBView = new BeanTreeView();
setLayout(new java.awt.GridBagLayout());
DBjToolBar.setBorder(javax.swing.BorderFactory.createEtchedBorder());
DBjToolBar.setFloatable(false);
DBjToolBar.setRollover(true);
AddjButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/netbeans/modules/languages/pl_sql/editor/resources/add.gif"))); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(AddjButton, org.openide.util.NbBundle.getMessage(OracleTopComponent.class, "OracleTopComponent.AddjButton.text")); // NOI18N
AddjButton.setFocusable(false);
AddjButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
AddjButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
DBjToolBar.add(AddjButton);
DeletejButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/netbeans/modules/languages/pl_sql/editor/resources/subtract.gif"))); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(DeletejButton, org.openide.util.NbBundle.getMessage(OracleTopComponent.class, "OracleTopComponent.DeletejButton.text")); // NOI18N
DeletejButton.setFocusable(false);
DeletejButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
DeletejButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
DBjToolBar.add(DeletejButton);
RefreshjButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/netbeans/modules/languages/pl_sql/editor/resources/reload.gif"))); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(RefreshjButton, org.openide.util.NbBundle.getMessage(OracleTopComponent.class, "OracleTopComponent.RefreshjButton.text")); // NOI18N
RefreshjButton.setFocusable(false);
RefreshjButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
RefreshjButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
DBjToolBar.add(RefreshjButton);
BGroup.add(DBAjToggleButton);
DBAjToggleButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/netbeans/modules/languages/pl_sql/editor/resources/mydba.gif"))); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(DBAjToggleButton, org.openide.util.NbBundle.getMessage(OracleTopComponent.class, "OracleTopComponent.DBAjToggleButton.text")); // NOI18N
DBAjToggleButton.setFocusable(false);
DBAjToggleButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
DBAjToggleButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
DBjToolBar.add(DBAjToggleButton);
BGroup.add(AlljToggleButton);
AlljToggleButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/netbeans/modules/languages/pl_sql/editor/resources/myall.gif"))); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(AlljToggleButton, org.openide.util.NbBundle.getMessage(OracleTopComponent.class, "OracleTopComponent.AlljToggleButton.text")); // NOI18N
AlljToggleButton.setFocusable(false);
AlljToggleButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
AlljToggleButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
DBjToolBar.add(AlljToggleButton);
BGroup.add(UserjToggleButton);
UserjToggleButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/netbeans/modules/languages/pl_sql/editor/resources/myuser.gif"))); // NOI18N
UserjToggleButton.setSelected(true);
org.openide.awt.Mnemonics.setLocalizedText(UserjToggleButton, org.openide.util.NbBundle.getMessage(OracleTopComponent.class, "OracleTopComponent.UserjToggleButton.text")); // NOI18N
UserjToggleButton.setFocusable(false);
UserjToggleButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
UserjToggleButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
DBjToolBar.add(UserjToggleButton);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
add(DBjToolBar, gridBagConstraints);
DBView.setBorder(null);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
gridBagConstraints.weightx = 100.0;
gridBagConstraints.weighty = 100.0;
add(DBView, gridBagConstraints);
}// </editor-fold>//GEN-END:initComponents
private ButtonGroup BGroup = new ButtonGroup();
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton AddjButton;
private javax.swing.JToggleButton AlljToggleButton;
private javax.swing.JToggleButton DBAjToggleButton;
private javax.swing.JScrollPane DBView;
private javax.swing.JToolBar DBjToolBar;
private javax.swing.JButton DeletejButton;
private javax.swing.JButton RefreshjButton;
private javax.swing.JToggleButton UserjToggleButton;
// End of variables declaration//GEN-END:variables
/**
* Gets default instance. Do not use directly: reserved for *.settings files only,
* i.e. deserialization routines; otherwise you could get a non-deserialized instance.
* To obtain the singleton instance, use {@link findInstance}.
*/
public static synchronized OracleTopComponent getDefault() {
if (instance == null) {
instance = new OracleTopComponent();
}
return instance;
}
/**
* Obtain the OracleTopComponent instance. Never call {@link #getDefault} directly!
*/
public static synchronized OracleTopComponent findInstance() {
TopComponent win = WindowManager.getDefault().findTopComponent(PREFERRED_ID);
if (win == null) {
Logger.getLogger(OracleTopComponent.class.getName()).warning(
NbBundle.getMessage(Utils.getCommonClass(), "LBL_OracleTopComponentWarning1", PREFERRED_ID));
return getDefault();
}
if (win instanceof OracleTopComponent) {
return (OracleTopComponent) win;
}
Logger.getLogger(OracleTopComponent.class.getName()).warning(
NbBundle.getMessage(Utils.getCommonClass(), "LBL_OracleTopComponentWarning2", PREFERRED_ID));
return getDefault();
}
@Override
public int getPersistenceType() {
return TopComponent.PERSISTENCE_ALWAYS;
}
@Override
public void componentOpened() {
}
@Override
public void componentClosed() {
}
/** replaces this in object stream */
@Override
public Object writeReplace() {
return new ResolvableHelper();
}
@Override
protected String preferredID() {
return PREFERRED_ID;
}
public HelpCtx getHelpCtx() {
return new HelpCtx(this.helpCtx);
}
final static class ResolvableHelper implements Serializable {
private static final long serialVersionUID = 1L;
public Object readResolve() {
return OracleTopComponent.getDefault();
}
}
}